package io.gitee.yth.design.pattern.test.core.pattern.structural.proxy.cglibproxy;

/**
 * cglib被代理类
 *
 * @author yth
 * @since 2023-04-28-0:14
 */
public class Target {

    /**
     * 可代理
     */
    public void methodA(int a) {
        System.out.println("methodA>>参数 a = " + a);
    }

    /**
     * 可代理
     */
    public int methodB() {
        /*
          内部调用 无法代理内部的 methodA、methodE
         */
        System.out.println("在methodB中调用私有方法methodE()");
        methodE();
        System.out.println("在methodB中调用私有方法methodA(11)");
        methodA(11);

        return 1;
    }

    /**
     * static方法 无法代理
     */
    public static void methodC() {
        System.out.println("methodC>>我没被拦截");
    }

    /**
     * final方法 无法代理
     */
    public final void methodD() {
        System.out.println("methodD>>我没被拦截");
    }

    /**
     * private方法 无法代理
     */
    private void methodE() {
        System.out.println("methodE>>我没被拦截");
    }

}
